The present invention relates to a network system and a communication method, an information processing apparatus and method, and a program, and more particularly to a network system and a communication method, an information processing apparatus and method, and a program, suitable for use with the case wherein communication with another apparatus is performed via NAPT.
In the Internet, an Internet Protocol (hereinafter called IP) is currently used as a routing protocol. The version of the most popular IP is presently “4” (hereinafter called IPv4), and the number of bits of a transmission source address and a transmission destination address used by this version is “32”. In a global network, typically the Internet and the like, a 32-bit address (hereinafter called an IPv4 address) is uniquely assigned to each communication terminal so that it is possible to identify a transmission source address and a transmission destination address of communication data of communications among these apparatuses.
However, because of a rapid increase in Internet use, there is a fear that there will be an insufficient number of IPv4 addresses. In order to solve this, the IETF (Internet Engineering Task Force) has proposed an IP version “6” (hereinafter called IPv6) and has started promoting it. However, actually, in order to transfer the routing protocol used by the Internet completely to IPv6, a large amount of time and cost will be required and it is difficult to perfectly solve this problem.
In order to solve this problem, techniques called UPnP (Universal Plug and Play) have been studied. If a router compatible with UPnP is used as a relay means, it is anticipated that a large amount of time and cost will be required. It is also necessary that a number of already existing routers incompatible with UPnP will be required to be replaced with routers compatible with UPnP. Therefore, it is not realistic to perfectly solve the above-described problem by this method.
As an approach to utilizing already existing IPv4 and expanding its addresses, a method has been proposed which uses an address space “private address” having specific properties.
Different from the IPv4 address (hereinafter called a global address) which is uniquely assigned to each terminal apparatus in a global network, the private address is assigned to each terminal in a predetermined limited area (local area). Therefore, when a communication terminal apparatus in a local area communicates with another communication terminal in the Internet having a global address by using its private address, it will be necessary to execute a process of translating the private address into the global address. A method of realizing this may be NAT (Network Address Translation).
If NAT is used, it is necessary to provide a correspondence between one private address and one global address. If there are a plurality of communication terminal apparatuses in a local area, only one of the communication terminal apparatuses can be connected to the Internet.
A method has been considered which utilizes a port which is a subsidiary (auxiliary) address provided under an address. More specifically, if this method is used, a private address assigned to a communication terminal apparatus and a port (i.e., socket) used for communication are translated into a global address and a port. This method is a method called NAPT (Network Address Port Translation) or IP masquerade. By utilizing NAPT, a plurality of communication terminal apparatuses each having a private address and a port can communicate with other communication terminal apparatuses each having a global address and a port.
However, as described above, when a communication apparatus accesses a communication terminal apparatus in a private network using NAPT for communications, from the outside of the private network, the communication apparatus cannot know the private address and port of the communication terminal apparatus before translation by NAPT, and the above-described communication is not possible unless some countermeasure is incorporated.
In contrast with this, there is a method whereby a router is made to identify an identifier of a communication terminal apparatus connected to a private network as a sub-address, and when a communication apparatus outside of the private network accesses the communication terminal apparatus, the communication apparatus specifies the communication terminal apparatus used as the communication partner by using the sub-address (for example, refer to Japanese Laid-open Publication No. 2001-345841 (pp. 9 to 16, FIG. 3 and FIGS. 6 to 8).
However, if the above communication method is used, it is necessary to use a router having the above-described function capable of using the sub-address. This leads to the issue that a communication apparatus cannot access a communication terminal apparatus in a private network via an already existing router not compatible with sub-addresses.
Further, if the above communication method is used, there arises another issue that a communication apparatus cannot access another communication apparatus via a plurality of routers.
Furthermore, if the above communication method is used, there arises a further issue that if a router for relaying communication increments a port, particularly increments a port by two or more, to be used for communication by a communication terminal apparatus, each time the address and port of a communication destination of the communication terminal apparatus change, it is difficult to specify the port of the communication terminal apparatus set by the router and a communication apparatus cannot access the communication terminal apparatus via a router of this kind.